package com.tao.spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * IOC
 * AOP
 * DI 又是什么?
 * 动态代理和静态代理有什么区别
 * JDK 动态代理和 CGLIB 代理有什么区别
 * Spring AOP 和 AspectJ AOP 有什么区别
 * Spring 中的 IOC 容器有哪些?有什么区别?
 * 为什么要使用三级缓存，二级缓存不能解决吗
 * @Autowired 和 @Resource 有什么区别
 * spring 事务的传播机制有哪些
 * spring 事务隔离级别有哪些
 * Spring依赖注入的几种方式
 * Spring循环依赖
 * Spring扩展点
 * Spring事务怎么实现的
 * Spring中依赖注入的几种方式
 * Spring的生命周期
 * Spring Bean的生命周期
 * Spring事件机制
 * Spring Bean的注入
 * Spring通过getBean无法获取那些Bean
 * SpringIOC容器创建的两种方式
 * Spring事务实现的10中场景
 * BeanDefinition
 * Spring9大核心基础功能
 * Spring中的设计模式
 * 将Bean放入容器的5中方式
 * Spring 中有哪些核心模块?
 * BeanFactory 和 FactoryBean 又有什么区别?
 * @Repository、@Service、@Compent、@Controller它们有什么区别?
 */
public class TestMain {
	public static void main(String[] args) {
		//基于注解
		ApplicationContext factoryAnnotation = new AnnotationConfigApplicationContext(Scan.class);

		A a =  factoryAnnotation.getBean(A.class);

		a.f();
		//factoryAnnotation.getBean(SpringFactories.class).test();
		//a.e();
	}
}
